Computer systems interface to one or more storage media. The storage media stores a variety of data such as operating system files, application programs and data files used with application programs. Known storage media types include hard disks, CD ROMs, Digital Versatile Disk (DVD) and the like. The storage media is logically subdivided into one or more volumes or partitions. The storage media is further physically subdivided into a plurality of sectors. Each sector is capable of storing a plurality of bytes of data. A cluster is a group of sectors and represents the smallest unit that an operating system executing in the computer uses to identify locations on the storage media. Thus, the operating system typically stores or reads data on the storage media on a cluster by cluster basis.
The data on the storage media is organized as a set of files and other control information used to manage the files on the disk. For example, each operating system file, application program or data file represents a different file on the storage media. The control information identifies the clusters on the storage media that include data for each file. The control information also identifies the clusters on the storage media that are allocated, i.e. include data for a file, and the clusters that remain unallocated, i.e. are available to store new data. The control information itself is stored as part of one or more files. The precise manner that the files and control information are organized on the storage media depends upon a file system. Various known file systems exist, such as File Allocation Table 16 (FAT16), File Allocation Table 32 (FAT32) and New Technology File System (NTFS).
An image file is a copy of the data stored on a source storage media volume. Typically, the image file is a single stream of data that is a sector by sector copy of the data contained on the source storage media volume. The image file is in turn stored on a destination storage media volume. The destination storage media volume is a different volume or partition on the same storage media or, alternatively, a separate storage media. For example, an image file that represents a sector by sector copy of a hard disk volume is stored on a CD ROM.
The image file is used for at least two functions. First, the image file is used to restore the source storage media volume to its state at the time the image file was created. Thus, the image file can be used to restore the storage media volume if it becomes damaged or corrupted. Second, the image file is used to provide a plurality of computer systems with the same basic configuration.
Because the image file is created as a sector by sector copy of the source storage media, and is stored as single data stream, it is difficult to manipulate the image file. The operating system cannot readily read the control information or individual file data from the data stream. As a result, files in the data stream cannot be replaced with new files or edited. In order to update an image file, it is necessary to restore the image file to a storage media volume, perform updates to the storage media volume, and then create a new image file. Also, if a user or system administrator wants to maintain different versions of an image file, separate image files must be created for each different version. Thus, known methods of maintaining image files are resource intensive and costly.